import df_generation ##truncation coeff: 0.1 ~ 0.3 권장 - 행정구역 규모가 클수록 크게
day?: 20231007 time?: 18 code?: 1156054000 truncation coeff?(0 ~ 1): 0.3
df=df_generation.df
import pydeck as pdk
layer = pdk.Layer(
'PolygonLayer', # 사용할 Layer 타입
df, # 시각화에 쓰일 데이터프레임
get_polygon='coordinates', # geometry 정보를 담고있는 컬럼 이름
get_fill_color='[255, 255*(1-scaled_pop_density), 255*(1-scaled_pop_density)]', ## or scaled_pop
get_line_color='[0, 0, 0]', # 각 데이터 별 rgb 또는 rgba 값 (0~255) [경계선]
get_line_width=50, # 경계선 굵기
pickable=True, # 지도와 interactive 한 동작 on
auto_highlight=True # 마우스 오버(hover) 시 박스 출력
)
# Set the viewport location
center = [126.986, 37.565]
view_state = pdk.ViewState(
longitude=center[0],
latitude=center[1],
zoom=10)
#마우스 오버시 툴팁 columns 출력
tooltip = {
"text": "행정지: {name} \n행정동코드: {code} \n인구: {pop}"
}
# Render
r = pdk.Deck(layers=[layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
layer = pdk.Layer(
'PolygonLayer', # 사용할 Layer 타입
df, # 시각화에 쓰일 데이터프레임
get_polygon='coordinates', # geometry 정보를 담고있는 컬럼 이름
get_fill_color='[255, 255*(1-scaled_pop_density), 255*(1-scaled_pop_density)]', ## or scaled_pop
get_line_color='[0, 0, 0]',
pickable=True, # 지도와 interactive 한 동작 on
auto_highlight=True, # 마우스 오버(hover) 시 박스 출력
extruded= True, #3D plot
get_elevation='scaled_pop_density', ## or scaled_pop
elevation_scale=6000, #elevation scale
wireframe=True #경계선 표시
)
view_state.bearing=15 #시점 좌우 각도
view_state.pitch=45 #시점 상하 각도
tooltip = {
"text": "행정지: {name} \n행정동코드: {code} \n인구: {pop}"
}
r = pdk.Deck(layers=[layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
df_in=df_generation.df_in
df_out=df_generation.df_out
df_diff=df_generation.df_diff
layer = pdk.Layer(# od in data Line layer
'LineLayer',
df_in, # od in dataframe
get_source_position='[from_lon, from_lat]', #from position
get_target_position='[to_lon, to_lat]', #to position
get_width ='3*trunc_scaled_pop', ## or scaled_pop
get_color='[255*scaled_pop, 0, 0]',
pickable=True, # interactive map
auto_highlight=True, #mouse over
highlight_color=[255, 255, 0] #mouse over color
)
layerP = pdk.Layer( #배경 행정구 그림
'PolygonLayer',
df,
get_polygon='coordinates',
get_fill_color='[255, 255, 255]',
get_line_color='[0, 0, 0]',
get_line_width=100,
opacity=0.1
)
center = [126.986, 37.565]
view_state = pdk.ViewState(
longitude=center[0],
latitude=center[1],
zoom=10)
tooltip = {
"text": "from: {from} \nto: {to} \npop: {pop}"
}
r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
layer = pdk.Layer(
'LineLayer',
df_out,
get_source_position='[from_lon, from_lat]',
get_target_position='[to_lon, to_lat]',
get_width ='3*trunc_scaled_pop', ## or scaled_pop
get_color='[0, 0, 255*scaled_pop]',
pickable=True,
auto_highlight=True,
highlight_color=[255, 255, 0]
)
center = [126.986, 37.565]
view_state = pdk.ViewState(
longitude=center[0],
latitude=center[1],
zoom=10)
tooltip = {
"text": "from: {from} \nto: {to} \npop: {pop}"
}
r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
layer = pdk.Layer(
'LineLayer',
df_diff,
get_source_position='[from_lon, from_lat]',
get_target_position='[to_lon, to_lat]',
get_width ='3*trunc_abs_scaled_pop', ## or abs_scaled_pop
get_color='[255*scaled_pop_p, 0, 255*scaled_pop_m]', #차이의 절댓값에 굵기 비례, 차이가 양수일때 red 음수일때 blue
pickable=True,
auto_highlight=True,
highlight_color=[255, 255, 0]
)
center = [126.986, 37.565]
view_state = pdk.ViewState(
longitude=center[0],
latitude=center[1],
zoom=10)
tooltip = {
"text": "from: {from} \nto: {to} \npop: {pop}"
}
r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
layer = pdk.Layer(
'ArcLayer',
df_in,
get_source_position='[from_lon, from_lat]',
get_target_position='[to_lon, to_lat]',
get_width ='3*trunc_scaled_pop', ## or scaled_pop
get_source_color='[0, 0, 0]', #출발 rgb
get_target_color='[255*scaled_pop, 0, 0]', #도착 rgb
pickable=True,
auto_highlight=True,
highlight_color=[255, 255, 0]
)
center = [126.986, 37.565]
view_state = pdk.ViewState(
longitude=center[0],
latitude=center[1],
zoom=10)
view_state.bearing = 15
view_state.pitch = 45
tooltip = {
"text": "from: {from} \nto: {to} \npop: {pop}"
}
r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
layer = pdk.Layer(
'ArcLayer',
df_out,
get_source_position='[from_lon, from_lat]',
get_target_position='[to_lon, to_lat]',
get_width ='3*trunc_scaled_pop', ## or scaled_pop
get_source_color='[0, 0, 0]',
get_target_color='[0, 0, 255*scaled_pop]',
pickable=True,
auto_highlight=True,
highlight_color=[255, 255, 0]
)
center = [126.986, 37.565]
view_state = pdk.ViewState(
longitude=center[0],
latitude=center[1],
zoom=10)
view_state.bearing = 15
view_state.pitch = 45
tooltip = {
"text": "from: {from} \nto: {to} \npop: {pop}"
}
r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
layer = pdk.Layer(
'ArcLayer',
df_diff,
get_source_position='[from_lon, from_lat]',
get_target_position='[to_lon, to_lat]',
get_width ='3*trunc_abs_scaled_pop', ## or abs_scaled_pop
get_source_color='[0, 0, 255*scaled_pop_m]',
get_target_color='[255*scaled_pop_p, 0, 0]',
pickable=True,
auto_highlight=True,
highlight_color=[255, 255, 0]
)
center = [126.986, 37.565]
view_state = pdk.ViewState(
longitude=center[0],
latitude=center[1],
zoom=10)
view_state.bearing = 15
view_state.pitch = 45
tooltip = {
"text": "from: {from} \nto: {to} \npop: {pop}"
}
r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()